/*
 * custom_type.h
 *
 * Created: 19/03/2012 17:37:12
 *  Author: marionse
 */ 


#ifndef CUSTOM_TYPE_H_
#define CUSTOM_TYPE_H_

// pointeur null
#define NULL ((void *)0)

// boolean
typedef unsigned char Boolean;
#define FALSE 0U
#define TRUE 1U

// entier non signe
typedef unsigned char Int8U;
typedef unsigned short Int16U;

// entier signe
typedef signed char Int8S;
typedef signed short Int16S;


/**
* \brief definit les codes d'erreur commun de l'applicatifs, en positif pour les warning, en negatif pour les erreurs
*/
typedef enum {
	E_RET_TIMEOUT = -3,			/** la fonction indique qu'elle est sortie a cause d'un timeout */
	E_RET_NOT_INIT = -2,		/** la fonction indique que le module n'est pas initialisee */
	E_RET_FATAL_ERR = -1,		/** la fonction est sortie en erreur critique sans plus de precision */
	E_RET_SUCCESS = 0,			/** la fonction c'est correctement deroulee */
	E_RET_NO_MSG = 1,			/** la fonction c'est correctement deroulee MAIS il n'y avais pas de message */
	E_RET_CMD_UNKNOWN = 2,		/** la commande n'est pas connue */
	E_RET_CMD_INVALID_SIZE = 3,	/** la taille du payload est invalide pour cette commande */
	E_RET_CMD_INVALID_ARG = 4,	/** un argument est invalide pour cette commande */
}ERetCode;

/**
* \brief depend du compilateur
*/
#ifndef PRR
 #define PRR PRR0
#endif

#endif /* CUSTOM_TYPE_H_ */